package org.dxy.domain.event.workstation;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 工位事件类型枚举
 * @author dxy
 * @createTime 2025/8/2
 */
@Getter
@AllArgsConstructor
public enum WorkstationEventTypeEnum {
    /** 工位创建 */
    CREATED("created", "工位创建"),
    
    /** 工位开始执行 */
    STARTED("started", "工位开始执行"),
    
    /** 工位停止执行 */
    STOPPED("stopped", "工位停止执行"),
    
    /** 工位暂停 */
    PAUSED("paused", "工位暂停"),
    
    /** 工位恢复 */
    RESUMED("resumed", "工位恢复"),
    
    /** 工位重置 */
    RESET("reset", "工位重置"),
    
    /** 工位移除 */
    REMOVED("removed", "工位移除"),
    
    /** 工位异常发生 */
    ERROR_OCCURRED("errorOccurred", "工位异常发生"),
    
    /** 工位分配设备 */
    DEVICES_ASSIGNED("devicesAssigned", "工位分配设备"),
    
    /** 工位追加设备 */
    DEVICES_APPENDED("devicesAppended", "工位追加设备"),
    
    /** 工位移除设备 */
    DEVICES_REMOVED("devicesRemoved", "工位移除设备"),
    
    /** 工位释放设备 */
    DEVICES_RELEASED("devicesReleased", "工位释放设备"),
    
    /** 工位步骤完成 */
    STEP_COMPLETED("stepCompleted", "工位步骤完成");

    private final String key;         // 用于标识事件类型的代码（小写）
    private final String description; // 事件类型的描述
}